package algo3c3g5;

import algo3c3g5.componentes.*;
import algo3c3g5.componentes.Componente.TipoComponente;

import java.util.*;

//REGLA80Carcteres_0123456789012345678901234567890123456789012345678901234567890
public class Auto {

	private Usuario usuario;
	private Map<TipoComponente, Componente> listComp;
	
	public Auto() {
	
		this.listComp =	new HashMap<TipoComponente, Componente>();
		//inicializo la lista a null;
		for (TipoComponente tipoComponente : TipoComponente.values())
			this.listComp.put(tipoComponente, null);

	}
	
	public void agregarComponente(Componente comp) {
		
		this.listComp.put(comp.getTipoComponente(), comp);
		

	}
	
	public Componente verComponente(TipoComponente tipoComponente) {
		
		return  this.listComp.get(tipoComponente);
		
	}
	
	public Componente removerComponente(TipoComponente tipoComponente) {
	
		Componente compARet = this.listComp.get(tipoComponente);
		this.listComp.put(tipoComponente, null);
		return compARet;
		
	}
	
	public boolean estaCompleto() {
		
		boolean completo = true;
		Iterator it = this.listComp.entrySet().iterator();
		while (it.hasNext()) {
			Componente comp = (Componente) (((Map.Entry)it.next()).getValue());
			if (comp == null) {
				completo = false;
				break;
			}
		}
	
		return completo;
			
	}
	
	public boolean estaOperativo() {
		
		//(!)implementar
		return true;
		
	}
	
}
